Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

189 lines
6.2 KiB

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- ***********************************************************************-->
  3. <!-- -->
  4. <!-- Copyright (c) 2000-2001 Microsoft Corporation -->
  5. <!-- -->
  6. <!-- This is the schema for the extension model -->
  7. <!-- -->
  8. <!-- ***********************************************************************-->
  9. <xsd:schema
  10. xmlns="msSSR"
  11. targetNamespace="msSSR"
  12. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  13. elementFormDefault="qualified">
  14. <!-- definition of simple types used by the SSR extension model -->
  15. <xsd:element name='MemberInfo' type='SsrMemberInfo'/>
  16. <xsd:complexType name='SsrMemberInfo'>
  17. <xsd:sequence maxOccurs='unbounded'>
  18. <xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  19. <xsd:element name='SupportedAction' type='SsrAction' maxOccurs='unbounded' />
  20. </xsd:sequence>
  21. <!--
  22. It is a basic assumption that each member will have a unique name
  23. this attribute is mandatory
  24. -->
  25. <xsd:attribute name="UniqueName" type="xsd:string" use="required" />
  26. <!--
  27. Major and minor version numbers allow us to plan some version control
  28. These attributes are mandatory
  29. -->
  30. <xsd:attribute name="MajorVersion" type="xsd:unsignedInt" use="required" />
  31. <xsd:attribute name="MinorVersion" type="xsd:unsignedInt" use="required" />
  32. <!--
  33. ProdID attribute at this level prevent it to be repeated at each
  34. SsrCustomProc element. This attribute is optional
  35. -->
  36. <xsd:attribute name="ProgID" type="xsd:string" use="optional" />
  37. </xsd:complexType>
  38. <xsd:complexType name="SsrAction">
  39. <xsd:sequence maxOccurs='unbounded'>
  40. <xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  41. <xsd:element name="DefaultProc" type="SsrDefaultProc" minOccurs="0" maxOccurs="1" />
  42. <xsd:element name="CustomProc" type="SsrCustomProc" minOccurs="0" maxOccurs="1" />
  43. </xsd:sequence>
  44. <!-- we have three distinct names: Configure, Rollback, and Report -->
  45. <xsd:attribute name="ActionName" type="SsrActionName" use="required" />
  46. <!--
  47. each action can be invoked for two different meanings: transformation or apply.
  48. However, transformation is too closely tied to XML terminologies. So, I used
  49. the new term "prepare". See the definition of the type
  50. -->
  51. <xsd:attribute name="ActionType" type="SsrActionType" use="required" />
  52. </xsd:complexType>
  53. <xsd:complexType name="SsrDefaultProc">
  54. <!--
  55. default procedure is either using XSLT to transform or launch scripts.
  56. We allow such two different methods being blended together for maximum
  57. flexibility. If you want to do an XSLT transformation, then you have
  58. to include elements called TransformFiles. If you want to launch scripts,
  59. then you have to have ScriptFiles elements.
  60. Also, in this type definition, we force the user to have TransformFiles
  61. before ScriptFiles. That doesn't mean you can not launch some scripts
  62. before transformation. You just have to create another SsrDefaultProc
  63. that contains only ScriptFiles elements.
  64. -->
  65. <xsd:sequence maxOccurs='unbounded'>
  66. <xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  67. <xsd:element name="TransformInfo" type="SsrTransformInfo" minOccurs="0" maxOccurs="1" />
  68. <xsd:element name="ScriptInfo" type="SsrScriptInfo" minOccurs="0" maxOccurs="1" />
  69. </xsd:sequence>
  70. </xsd:complexType>
  71. <xsd:complexType name="SsrCustomProc">
  72. <xsd:choice maxOccurs='1'>
  73. <xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  74. </xsd:choice>
  75. <!--
  76. this ProgID is optional. But if it is missing here, it will use SsrMemberInfo's
  77. ProgID. In other words, you must not have both ProgID attribute missing.
  78. -->
  79. <xsd:attribute name="ProgID" type="xsd:string" use="optional"/>
  80. </xsd:complexType>
  81. <!-- definition of complex types used by the SSR extension model -->
  82. <xsd:complexType name="SsrTransformInfo">
  83. <xsd:sequence>
  84. <xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  85. </xsd:sequence>
  86. <xsd:attribute name="TemplateFile" type="xsd:string" use="required" />
  87. <!--
  88. To support secnarios where no transform result files is not needed, each
  89. SsrTransformFiles element can choose to have no ResultFile attribute.
  90. be carried out, but no result file will be created by the engine. This is still
  91. In such cases, the transform will useful because a transformation can be
  92. done simply as a way to call some extension functions via XSLT.
  93. -->
  94. <xsd:attribute name="ResultFile" type="xsd:string" use="optional" />
  95. </xsd:complexType>
  96. <xsd:complexType name="SsrScriptInfo">
  97. <xsd:sequence>
  98. <xsd:element name="Description" type="xsd:string" minOccurs="0" maxOccurs="1"/>
  99. </xsd:sequence>
  100. <xsd:attribute name="ScriptFile" type="xsd:string" use="required" />
  101. <!--
  102. Usage indicates to the engine whether this file is for launching the script, or merely
  103. tell us that the file is a result of our action. We need to cleanup/backup such
  104. files. If this is a lunch file, we don't touch it during cleanup/backup.
  105. -->
  106. <xsd:attribute name="IsStatic" type="xsd:boolean" use="optional" default="false" />
  107. <xsd:attribute name="IsExecutable" type="xsd:boolean" use="optional" default="true" />
  108. </xsd:complexType>
  109. <xsd:simpleType name="SsrActionName">
  110. <xsd:restriction base="xsd:string">
  111. <xsd:enumeration value="Configure"/>
  112. <xsd:enumeration value="Rollback"/>
  113. <xsd:enumeration value="Report"/>
  114. </xsd:restriction>
  115. </xsd:simpleType>
  116. <xsd:simpleType name="SsrActionType">
  117. <xsd:restriction base="xsd:string">
  118. <xsd:enumeration value="Prepare"/>
  119. <xsd:enumeration value="Apply"/>
  120. </xsd:restriction>
  121. </xsd:simpleType>
  122. </xsd:schema>